package com.some;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class JingDong03 {

    static final int N = (int) 1e6 + 10;
    static final long mod = (int) (1e9 + 7);
    // 长n的字符串 不包含red的数量
    static final long[] dp0 = new long[N + 1];
    static final long[] f = new long[N + 1];

    // 预处理 dp的过程有难度 不好想
    static {
        f[0] = 1;
        //初始化 26^n
        for (int i = 1; i <= N; i++) {
            f[i] = f[i - 1] * 26 % mod;
        }
        dp0[0] = 1;
        dp0[1] = f[1];
        dp0[2] = f[2];
        dp0[3] = f[3] - 1;
        for (int i = 4; i <= N; i++) {
            // r _ _ _ _ _
            // r e d _ _ _
            // 第一位随便取 后面 i-i位不出现red
            // 但是一旦相邻的出现ed 也会出现red
            // 再扣除掉 高三位是red的情况 ===> 就是一共i位不出现red的情况
            dp0[i] = (f[1] * dp0[i - 1] - dp0[i - 3] + mod) % mod;
        }
    }

    // 长n的字符串 只存在一个red
    // 枚举每一处red出现的位置 red之前和之后的位置都没有red
    static long f1(int n) {
        long res = 0;
        for (int i = 0; i < n - 2; i++) {
            res = (res + dp0[i] * dp0[n - i - 3]) % mod;
        }
        return res;
    }

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.println(f1(n));
    }
}
